Providing users of computers with useful and understandable interfaces for navigating and interacting with content stored upon a computer has become increasingly complex as the information stored in computing environments has grown and diversified. Similarly, giving users of computers the ability to quickly find and display related pieces of information is a challenge that the computer industry has struggled with for many years. Today this problem is more salient then ever as increasing numbers of individuals utilize computers in their daily routines and as the types of information stored on a computer continues to diversify.
For example, users often utilize their computers to store and interact with a wide variety of digital images. Millions of families now use digital cameras to snap hundreds of images each year. These images are often stored on the computer and can be easily disseminated via the Internet and email.
Traditionally, as in Microsoft Corporation's WINDOWS® XP™ operating system, digital images and other files are stored on the computer within a data store in a hierarchical fashion organized with files of information or media stored within folders. These conventional operating systems include a shell utility that provides a user interface for viewing information about the computer. The shell typically includes a file system browser that enables users to navigate through the file system and locate and open files and folders. For example, Microsoft Corporation's WINDOWS® EXPLORER™ is a file system browser utility included with WINDOWS® XP™.
To interact with a specific type of content such as digital images, the shell or a computer application may provide an environment specially designed for that content. For example, =WINDOWS® XP™ provides enhanced viewing of digital images, and Apple Corporation's iPhoto™ is a commercially available application for presenting digital photos. These products may allow a user to associate properties with the digital images. Information such as the date taken and the subject matter of the photo may be stored along with the image, and, depending upon the platform, this data may be used for various operations such as indexing and searching. In a file system context, the information may be metadata placed in the data store along with the underlying image file.
While these presently available products provide useful techniques for the presentation and storage of digital images, they are limited in several important aspects. For instance, while properties may be associated with an image file, currently available systems do not allow such data to be associated with only a portion or a region of an image. For example, they do not provide metadata that identifies a person and where in the image that person is shown. Hence, the user must actually view the image to find particular subject matter.
Another limitation of conventional systems is a restricted ability to display items in a relational manner. Applications generally cannot access or display a variety of items in a data store, and typical shell browsers are operable only to display items in the hierarchical fashion in which they are stored—organized within files stored within folders. For example, if a user desires to view all the files stored on a computer pertaining to a certain subject, that user must first place all such files in the same folder. Because the shell has limited capacity to determine relationships between items, it is difficult for a user to view files in a relationship-driven context. Were a system able to present content in a relationship-driven context, a computer could utilize properties associated with image items to find other items with related subject matter. Similarly, for images having data describing subject matter depicted in a particular region, the computer could locate and display items related to this region's subject matter.
Accordingly, there is a need for improved techniques for defining properties associated with an image stored in a data store. There is also a need for improved capabilities for presenting items in a data store in a relationship-driven context.